package Java4_26网络编程作业;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import java.util.List;

public class J1 {
	static ServerSocket ss;
	static Socket s;

	public static void main(String[] args) {
		try {
			ss = new ServerSocket(6666);
			s = ss.accept();
			System.out.println("开始发送文件给" + s);
			String[] fileName = { "‪D:\\1.png", "D:\\meigui-html5.html", "D:\\公司员工1.txt " };
			OutputStream out = s.getOutputStream();
			ObjectOutputStream oos = new ObjectOutputStream(out);
			List<byte[]> list = new ArrayList<byte[]>();
			for (String x : fileName) {
				File f = new File(x);
				byte[] names = f.getName().getBytes();// 文件名

				FileInputStream fin = new FileInputStream(f);
				byte[] b = new byte[fin.available()];
				fin.close();
				// 1:写入文件名的长度
				byte[] b1 = { (byte) Math.min(names.length, 255) };
				list.add(b1);
				// 2：写入文件名
				list.add(names);
				// 3:写入文件内容
				list.add(b);// 写入指定长度的byte内容
			}
			oos.writeObject(list);
			System.out.println("文件发送给" + s + "结束");
		} catch (IOException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		} finally {
			try {
				s.close();
			} catch (IOException e) {
				// TODO 自动生成的 catch 块
				e.printStackTrace();
			}
		}
	}
}
